package com.duyus.controller;

import com.duyus.pojo.Result;
import com.duyus.utils.AliOSSUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

@Slf4j
@RestController
public class UploadController {

    // 本地图像传输到本地
//    @PostMapping("/upload")
//    public Result upload(String username, Integer age, MultipartFile image) throws IOException {  // 提交图像文件利用spring框架提供的MultipartFile方法
//        log.info("文件上传，{},{},{}",username,age,image);
//        // 1.获取原始的文件名
//        String originalFilename = image.getOriginalFilename();
//        // 2. 利用uuid构造唯一的文件名
//        int index = originalFilename.lastIndexOf(".");
//        String extname = originalFilename.substring(index);
//        String newFileName = UUID.randomUUID().toString() + extname;
//        log.info("新的文件名,{}",newFileName);
//        // 将文件保存到服务器的磁盘目录中 D:\Study\JAVA_Learn\JavaProject\web_project\tlias-web-management\src\main\resources\imgs
//        image.transferTo(new File("D:\\Study\\JAVA_Learn\\JavaProject\\web_project\\tlias-web-management\\src\\main\\resources\\imgs\\"+newFileName)); // 将接受的文件转存到磁盘文件中
//        return Result.success();
//    }

    // 上传信息到oss服务器

    @Autowired
    private AliOSSUtils aliOSSUtils;

    @PostMapping("/upload")
    public Result upload(MultipartFile image) throws IOException {
        log.info("文件上传，{}",image.getOriginalFilename());
        String url = aliOSSUtils.upload(image);
        log.info("文件上传成功，文件访问的url: {}",url);
        return Result.success(url); // 返回 url ，json的格式
    }
}
